iT邦幫忙

2023 iThome 鐵人賽

DAY 26
0
自我挑戰組

線上商店串接tappay系列 第 26

Node.js Stream

  • 分享至 

  • xImage
  •  

Stream 可翻譯為「串流」或「資料流」,白話來說,
就是Start using data,before it has finish loading,讓資料還在傳輸時,就直接使用。

當從串流(stream)中讀取資料時,通常會以固定大小的區塊來處理資料。這些區塊或片段通常被稱為 "chunks",每個 "chunk" 包含串流中一部分的資料

我們可以用Node.js建立read stream和write stream。

首先準備一個有龐大的txt檔blog3,透過建立readstream的方式,取得一個一個chunk的資料,會呈現二進位數據的buffer的狀態。

const readStream = fs.createReadStream('./docs/blog3.txt');

https://ithelp.ithome.com.tw/upload/images/20231011/201633207MHSXYRCFv.png
我們也可以透過utf8 encode,發現這些一塊一塊的資料,合起來就是blog3的內容。

const readStream =fs.createReadStream('./docs/blog3.txt',{ encoding: 'utf8'});
接著我們透過writestream,當接收到一塊chunk的時候,就立刻寫進blog裡。

const writeStream = fs.createWriteStream('./docs/blog4.txt');
readStream.on('data',chunk =>{
    console.log('-----NEW CHUNK-----');
    console.log(chunk);
    writeStream.write('\nNEW CHUNK:\n');
    writeStream.write(chunk);
});

這樣就可以達到Start using data,before it has finish loading的效果。

我們甚至可以用pipe,寫成一句
readStream.pipe(writeStream);


參考資料

Net ninja


上一篇
Node.js Read Write
下一篇
Node.js Client&Server
系列文
線上商店串接tappay30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言